Real-time process control systems were first implemented within a single computer system. As the need to monitor and control more physical devices increased, the complexity and size of the process control systems also increased. Shortly thereafter, single computer real-time process control systems were unable to process all the information within a timely manner as required by the real-time process control environments.
To correct this processing problem, real-time process control systems evolved into multiple computer systems that were connected to each other with proprietary communication interfaces. The multiple computer systems processed data locally and communicated the information to the other computer systems over the proprietary communication interfaces. Since, the computer systems did not use a standard communication interface nor a standard protocol between each of the computer systems, modifications and additions to the systems were difficult, if not impossible.
This inter-computer incompatibility problem was resolved when the computer industry developed standardized networks and network protocols. Two of the industry standards were Ethernet and Transmission Control Protocol/Internet Protocol ("TCP/IP") used on 10 base 2 coaxial cable. Ethernet and TCP/IP allowed various computer systems the ability to communicate to each other without using proprietary communication interfaces.
The next evolution in real-time process control systems was object oriented distributed processing. In object oriented distributed processing, requesting programs ("clients") call resource programs ("objects") to process a request. In this design, the clients and objects are located on different computers on the network. To facilitate a standardized way for clients to locate and communicate with objects, Microsoft Corporation developed the Component Object Model ("COM") protocol. The COM protocol, incorporated into software libraries called "COM libraries," defines a standardized interface for locating and communicating to objects over the network without requiring the clients to know the location of the desired objects.
The process control industry incorporated the COM standard and Object Linking and Embedding ("OLE") in its real-time process control standard, calling the resulting standard OLE for Process Control ("OPC"). The OPC standard defined the interface and architecture for distributed real-time process control object processing.
One of the original requirements of all real-time process control systems was the processing of requests within a specific period of time. If the real-time process control system failed to process the request within a specific period of time, the real-time process control system could have caused damage when the real-time process control system failed to control a physical device. Therefore, the real-time process control software was required to execute requests within specific time limitations.
However, even though the new OPC and COM standards used the standard network protocol processing features, the standard network protocols did not allow programs to control requests based upon time. If the computer which contained the object died or was not available, the standard network protocols suspended execution indefinitely or for a very long time. Thus, the new OPC and COM standards did not meet the basic time processing requirements of real-time process control systems.
Real-time process control systems cannot afford to be suspended indefinitely if they use OPC or COM compliant programs. What is needed in the art is a way to prevent clients and objects from suspending indefinitely or suspending for a long period of time.